<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/vue-router/3.2.0/vue-router.min.js"></script>
</head>

<body>
    <!-- router-->
    <div id="app">
        <!-- 路由跳转的其它方式 -->
        <div>
            <input type="button" value="跳转到首页" @click="fn1()">

        </div>

        <!-- 路由需要一个出口 -->
        <!-- 然后才可以匹配到的组件渲染出来 -->
        <router-view></router-view>
    </div>



    <script>
        //创建路由
        const router = new VueRouter({
            // 路由的规则
            routes: [{
                path: '/index/:id',
                name: 'index', //路由的名称，它是一个可选的属性，定义后就可以通过这个name来实现跳转
                component: {
                    template: '<div>{{$route.params.id}}首页</div>' //组件的模板
                }
            }]
        })


        //4.创建Vue对象和挂载根实例
        //一定要通过router配置参数注入路由，从而让整个应用都有路由的功能
        let vm = new Vue({
            el: "#app",
            data: {},
            //将路由router添加到Vue中
            router,
            methods: {
                fn1() {
                    // 可以根据路由的名称实现一个跳转
                    this.$router.replace({
                        name: 'index',
                        params: {
                            id: Math.random() //随机数方法
                        }
                    })
                }
            },
        })
    </script>
</body>

</html>